package cn.itcast.java.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Author itcast
 * Date 2021/10/14 9:51
 * 通过JDBC驱动连接mysql数据库并执行查询数据表数据
 * 数据表 category
 * 开发步骤：
 * 1.加载jar包 jdbc ，com.mysql.jdbc.Driver
 * 2.获取数据库的连接
 * 3.创建statement
 * 4.创建查询sql
 * 5.执行查询操作，获取数据集 ResultSet
 * 6.遍历数据集并将结果打印输出
 * 7.关闭数据集，statement，connection连接
 */
public class JDBCDMLDemo {
    private static Connection conn = null;
    private static Statement statement = null;
    public static void main(String[] args) {
        //1.加载jar包 jdbc ，com.mysql.jdbc.Driver
        try {
            conn = JDBCUtils.getConn();
            //3.创建statement
            statement = conn.createStatement();
            //4.创建查询sql
            //String sql = "INSERT INTO category values(null,'手机')";
            //String sql = "UPDATE category SET cname='电脑' where cid=5";
            String sql = "DELETE FROM category WHERE cid in (3,4,5)";
            //5.执行查询操作，获取数据集 ResultSet
            // statement.execute(sql) 如果能够返回第一条数据就返回 true; 否则update delete 都返回 false
            // statement.executeUpdate(sql) 更新和插入,删除操作会返回影响的记录行数;如果是数据库的
            // DDL 操作，返回nothing 值
            // statement.executeQuery(sql) 执行查询操作,返回ResultSet结果集
            // 返回记录数，如果当前返回记录数 >=1 说明当前用户存在，登录成功！
            int count = statement.executeUpdate(sql);
            System.out.println("影响的行数为："+count);
            //6.遍历数据集并将结果打印输出
            // rs.next() : 如果当前有下一条数据就返回为true，否则为false

        } catch (SQLException e) {
            e.printStackTrace();
        }
        //7.关闭数据集，statement，connection连接
        finally {
            JDBCUtils.close();
        }

    }
}
